<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        // 画出原型链，并且在vscode上写上每一步的代码，以及对应的对象是否全等的判断

        // 构造函数
        function Star (name, age, song) {
            this.name =name;
            this.age = age;
            this.song = song;
        }
        // console.log(Star);
        // console.log(Star.prototype);

        // 将公共方法挂载到原型对象上
        Star.prototype.sing = function () {
            console.log(`会唱跳${this.song}`);
        }
        // console.log(Star.prototype.constructor);

        // 实例化对象
        const ikun = new Star('ikun', 2.5, 'rep')
        // console.log(ikun.__proto__);
        // console.log(ikun.__proto__.constructor);

        // 内置构造函数Object的原型对象
        // console.log(ikun.__proto__.__proto__)
        // console.log(Object.prototype);
        // console.log(ikun.__proto__.__proto__.constructor);
        // console.log(Object);

        // 判断对应的对象是否全等
        // console.log(ikun);
        // console.log(ikun.__proto__ === Star.prototype);               // true
        // console.log(ikun.__proto__.constructor === Star);             // true
        // console.log(ikun.__proto__.__proto__ === Object.prototype);   // true
        // console.log(ikun.__proto__.__proto__.constructor === Object); // true

    </script>
</body>
</html>